home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1997 February / EnigmA AMIGA RUN 15 (1997)(G.R. Edizioni)(IT)[!][issue 1997-02][PLANET CD V].iso / enigma / earcd / varie / uae-0_64.lha / uae-0.6.4 / src / ChangeLog < prev    next >
Text File  |  1996-09-10  |  54KB  |  903 lines

  1. 960905 Lower 8 bits of POTGOR should be 0.
  2. 960904 Implement MULU, MULS, ADDX and SUBX in compiler.
  3. 960903 ncurses interface works. DOS people: please use the new portable tui.c
  4.        and turn dos-ui.c into a frontend for conio.h, similar to svgancui.c
  5.        In xui.c, unlink the temporary files ASAP.
  6.        Two new command-line options, "-o" and "-G".
  7.        Get rid of sz_unknown.
  8.        compiler.h, compiler.c: New files.
  9.        filesys.c, action_read(): Added a hack to test whether the first four
  10.        bytes read from a file a file contain 0x000003F3 (HUNK_HEADER), in
  11.        which case there's probably a LoadSeg() call going on and we ought to
  12.        flush the cache. Also, use the fact that memory is now linear.
  13. 960902 Struggle a bit with dos-ui.c, rename it to tui.c (text-based ui), add
  14.        new file svgancui.c (ncurses ui) and try to make these two understand
  15.        each other.
  16. 960829 New transdisk from Stefan Ropke (can write images)
  17.        Apply Patrick Hanevolds BeBox patches.
  18. 96082x many changes to Exec. Still not booting (DMACON seems not to be set up
  19.        properly, and sometimes Signal is called with task==0).
  20. 960821 Solaris sound from Manfred Thole.
  21. 960820 In filesys.c, get_fileinfo(), return volume name for top-level 
  22.        directory.
  23. 960819 Reimplement WritePixel(). Layer locking is still missing.
  24. 960818 Reverse meaning of -x flag for X11. More Exec code.
  25.        Several changes to the main CPU loop and the way call traps work.
  26. 960817 Implement some simple Exec functions (Lists, AllocMem & friends)
  27. 960816 filesys.c fixes from David Varley.
  28. 960815 Implement graphics library region functions.
  29. 960814 Modify memory layout: All memory is linear now; get_real_address()
  30.        returns a (UBYTE *).
  31. 960810 Add Gustavo's latest DOS code.
  32.        In configure, include <sys/param.h> earlier for the sake of some *BSD.
  33.        Add three options for sound code (bits, frequency, buffer size).
  34.        Make -S option take a parameter; remove SPEED_UP_SIDMON_MODULES.
  35.        New version of transrom (return 0, duh).
  36. 960805 Fixed the blitter line mode emulation (this time, really! I hope.)
  37.        Thanks to Fabio Ciucci for a detailed description of the correct
  38.        behaviour.
  39. 960730 Spent the last three days trying to make the filesystem emulation
  40.        bootable by adding an expansion device for it. A fair bit of trial and
  41.        error, but now it works! Even the hardfile now works with Kick 1.3, but
  42.        you have to mount it manually after booting.
  43.        hardfile.c, filesys.c, expansion.c and autoconf.c now are an
  44.        entangled mess which badly needs to be cleaned up.
  45.        We can now mount more than one filesystem even with Kick 1.3: we
  46.        recognize them by param 2 of the startup packet, which has the same
  47.        value as the dn_Startup field of the devicenode.
  48.        Make Kickstart replacement work again (didn't like the CPU emulator
  49.        changes)
  50.        Include preliminary serial support from Stefan Reinauer.
  51. 960728 Fixed the scancodes for <> and #' keys in svga.c
  52.        Apparently, CIA timer latches ought to be 0xFFFF after a reset
  53.        (prevents Eagleplayer from crashing occasionally). #ifdeffed out a
  54.        slightly weird call to INTREQ from RehtinkICRB()
  55. 960727 Sound code rewritten again. Now uses events (five new ones). All 
  56.        modules seem to play correctly now. It's a bit slower, though.
  57.        AF sound should work again, patches from Marcus Sundberg.
  58. 960723 ... and more CPU emulation bugs fixed by Herman.
  59.        Added uae.library from Tauno Taipaleenmaki, plus support files in the
  60.        "amiga" directory.
  61.        Added some files for the XFree86/OS2 port from Krister Bergman.
  62.        Reorganized all the directories.
  63. 960717 Add latest patch from Herman.
  64.        More FAST_BLITTER options: 4 and 5. These finish the blit immediately.
  65. 960713 Call XAutoRepeatXXX() only if we know we want to change the state.
  66. 960709 Work around a few AIX bugs (ughhh... what a broken OS). New test for
  67.        sys/select.h.
  68.        In xui.c, don't try to communicate with a dead process.
  69. 960704 More bugfixes from Herman.
  70.        Get rid of dummy_xlate(), use default_xlate() to abort with error.
  71.        In svga.c, set correct_aspect to 0 if using lores.
  72.        Change the Bcc exception 3 handling code a bit.
  73.        Add new program "cpuopti" that takes gcc-generated assembly files and
  74.        optimizes away unnecessary pushl/popl instructions on the x86.
  75. 960701 68020 exception handling & various bugfixes from Herman ten Brugge.
  76.        In ersatz.c, use 0xFF0D instead of 0xF00D as trap opcode.
  77.        Do MMU "emulation" (no-op MMU instructions, probably many cases decoded
  78.        incorrectly).
  79. 960627 New file LIESMICH, with minimal German instructions. Somebody want to
  80.        translate the docs to French, Spanish, Italian, all the Scandinavian
  81.        languages, Hebrew, Polish, Dutch, Russian, Welsh, Gaelic and something
  82.        Joe_Luser@aol.com understands? (No offense meant - I'm sure there are
  83.        brillant minds using AOL. There must be.)
  84. 960626 In zfile.c, make sure we delete the temporary file even if file
  85.        decompression fails.
  86.        Reimplemented sound support, this time following the HRM closely. Seems
  87.        to work fine most of the time, but occasionally loses drum beats in
  88.        TFMX modules. do_sound() is now unconditional, it calls
  89.        flush_sound_buffer(), which is system-dependent. This breaks everything
  90.        except Linux sound for now :(
  91.        Add Herman ten Brugge's 68020/68881 emulation code.
  92.        FreeBSD chokes if sys/mount.h is included without sys/types.h. Fix the
  93.        configure script.
  94. 960622 More work on AGA code.
  95.        Removed 2-bit display routines from custom.c. Ian: please use dithering
  96.        code.
  97.        Make slowmem and chipmem sizes run-time configurable.
  98.        Mask out the high bits in BLT?PTH().
  99.        Add exception 3 checks to Bcc/BSR instructions. Seems to be not quite
  100.        correct yet.
  101.        Completely rewrote the disk emulation. We now create a big track buffer
  102.        full of MFM data, used in a cyclic fashion by DSKBYTR() and friends. 
  103.        The current position in the buffer is determined by the cycle counter.
  104.        DMA reads are now done in one piece. Two new event types: ev_diskblk 
  105.        and ev_diskindex.
  106.        ARRGGHH! The RSI demo has _completely_ broken disk loading routines.
  107.        They start disk DMA on a block while the blitter is still working on 
  108.        the same memory region.
  109.        In zfile.c, unlink() the temporary file directly after opening it so
  110.        it will be freed by the OS as soon as we close it (or crash... :)
  111. 960621 Merge pfield_sprite_h() and pfield_sprite_l() into one function.
  112.        Split off new files blitter.c and blitter.h from custom.c.
  113.        Fixed null-pointer dereference in zfile.c when filename has no
  114.        extension.
  115.        Add new field maxline to gfxvidinfo that prevents writing past the
  116.        screen buffer if it has less lines than expected.
  117.        Modify the 256 color allocation routine to set nb_cols to the same
  118.        value first for r,g and b; allocate everything as usual and fill the
  119.        lost colors afterwards with those that have the greatest difference.
  120. 960620 For some extremely weird reason, it is faster to simply call the
  121.        assembly-optimized pfield_linetoscr_full routines _twice_ to double the
  122.        line than calling the new (also assembly-optimized)
  123.        pfield_linetoscr_full_double routines, at least when writing directly 
  124.        into the framebuffer. If someone has a good theory why, let me know 
  125.        about it.
  126.        Drawing into memory is faster with the _double routines, but not
  127.        noticeably (about 1%).
  128.        Consequence: Removed the new pfield_linetoscr_full_double assembly
  129.        routines again.
  130.        Add a "--disable-gui" option to configure.
  131.        Add Samuel Devulder's dithering code. Provide support for mono and
  132.        16 color X servers.
  133.        Put an assembly version of DitherLine() in X86.S.
  134.        New color mode (3) available, tells UAE to use 256 colors and dither
  135.        the image. This is meant for people who have only a 256 color X server
  136.        available, but it works with the SVGA version, too. It's much slower
  137.        than normal 256 color mode, though.
  138.        Use the color allocation algorithm from the dither code in
  139.        alloc_colors256(), too.
  140. 960619 New files: zfile.c and zfile.h, from Samuel Devulder. These provide
  141.        transparent decompression of various compressed file formats. Enabled
  142.        by configure only for Unix systems.
  143.        Eliminate dont_want_aspect. New option "-C", sets correct_aspect. Make
  144.        video mode 3 640x480, video mode 4 800x600. Honor correct_aspect in
  145.        320x400, 640x480 and 800x600 mode with SVGAlib.
  146.        Add fields maxlinetoscr and x_adjust to gfxvidinfo.
  147.        Rename pfield_slow_linetoscr() to pfield_do_linetoscr(). Use new fields
  148.        in gfxvidinfo to enable writing directly to the framebuffer in
  149.        resolutions with <800 horizontal pixels.
  150.        New function pfield_do_linetoscr_full(), called when sure that full
  151.        line update is being done.
  152.        Move some of the usage() information into some target_specific_usage() 
  153.        functions, defined in the various system-specific files.
  154.        Support lower resolutions with LOW_BANDWIDTH, too.
  155.        memcpy() within screen memory is dog slow. Prevent some common cases:
  156.        1. Use fill_line() to double a line in the border.
  157.        2. Add a parameter to pfield_do_linetoscr_full() to indicate whether 
  158.           the line has to be doubled. New functions
  159.           pfield_linetoscr_*_double_slow() that simply do a memcpy(), plus 
  160.       optimized ones in X86.S that are much faster by avoiding the copy.
  161.        Smart update code could get confused by lores modes when
  162.        prev_max_diwstop changed from one frame to the next. New variable
  163.        frame_redraw_necessary, which acts as a counter. It's initialized to
  164.        2 in interlace mode to handle that case properly, too.
  165.        Move sprite priority checks into pfield_sprite_?(), move HAM
  166.        calculations into new function decode_ham6() to simplify the various
  167.        linetoscr functions.
  168.        Fixed a bug that would cause sprites to get deformed in some cases
  169.        when they overlapped (never seen it).
  170. 960618 New file: dos-snd.c, from Gustavo.
  171.  
  172. 960617 Release 0.6.0
  173. 960617 Fix memory clobber in X86.S when diwfirstword==0. Eliminate double test
  174.        for HAVE_SYS_MOUNT_H in sysdeps.h.
  175. 960616 Handle programs that don't wait for the blitter by finishing a pending
  176.        blit as soon as a blitter register is written to (regardless of DMACON,
  177.        to be safe).
  178.        Call gui_led only if the LED changed.
  179. 960615 Fixed dual playfield sprite priorities. Optimized dual playfield code
  180.        in X86.S. More work on AGA code. Get joystick status only in
  181.        vsync_handler to speed things up.
  182.        Make blitter fill more intelligent with table lookups instead of loop.
  183. 960614 DOS update from Gustavo. Pass real bitplane pointer to
  184.        bpl_data_differs(), don't calculate it again.
  185. 960610 Fixed silly INTEL_FLAG_OPT bug: The new __asm__ expressions use
  186.        regflags, which is of course _regflags on a.out...
  187.        More BeBox fixes from Christian.
  188.        Make the CIA bank bigger (A0..BF) and relax the CIA A/B selection
  189.        checks to make broken software (Kingsoft's Emerald Mine, reportedly)
  190.        happy.
  191.        Default framerate is now 1.
  192. 960603 New BeBox code from Christian. Fix test for ELF in configure.in.
  193. 960529 genblitter.c: generate blitfunc as a function taking ULONGs and
  194.        returning an ULONG. This makes custom.o about 4500 bytes smaller on the
  195.        x86 by removing worthless size prefixes, and should increase
  196.        performance (better for the cache, and the P6 reportedly doesn't like 
  197.        16 bit instructions anyway).
  198.        memory.c: Load Kickstart in one block and swap bytes after that if
  199.        necessary (eliminates the need for the special bebox load routine)
  200.        custom.c: Some preliminary work for AGA support.
  201. 960528 Saw a real awful piece of code that detects the right mouse button by
  202.        reading a value from POT0DAT, counting up to 25, reading from POT0DAT
  203.        again, and deciding the button is pressed if the value changed. Urgl!
  204.        Added POT0DAT() in custom.c ...
  205.        Gustavo's latest patches.
  206. 960525 Do index pulse handling in CIA_hsync_handler(). Make sure bit 12 in 
  207.        INTREQ gets set on an index pulse. Don't call DISK_Index() for now,
  208.        since this breaks the Workbench.
  209.        The CIA code should _probably_ not be resetting the bits in INTREQ.
  210.        Disable this as an experiment, let's see what breaks.
  211. 960524 Z flag handling for ABCD/SBCD/ADDX/SUBX was wrong (must be clear if not
  212.        zero, was set if zero). Some other flag bugs in these functions fixed.
  213. 960523 gfxlib.c update from Christian Schmitt. Some new Mac code from Ernesto,
  214.        still not all of it, though. Italian keyboard from Alessandro Bissacco.
  215. 960522 Fix the CHK instruction. Implement middle mouse button.
  216. 960515 Fix some Nextstep problems in configure.in.
  217. 960513 New Makefile target "streifenfrei" to remove all output from configure.
  218.        Use autoconf 2.7; 2.9 is buggy.
  219. 960512 Remove BIG_ALIGNMENT hack. Remove superfluous pfield_fetchdata() call
  220.        in pfield_doline_slow_l() that resulted in garbage on the screen.
  221.        Move blttbl array from custom.h to genblitter.c
  222.        Use new lookup tables imm8_table and areg_byteinc in CPU emulation
  223.        instead of ?: expressions.
  224.        GCC appears to generate better code if the opcode is passed as ULONG to
  225.        the CPU emulation functions instead of as UWORD.
  226.        Modify some of the flag emulation __asm__ statements so that GCC uses
  227.        less registers for them.
  228. 960510 Cast malloc() results to char *, for C++ compilers.
  229. 960509 Use test for GCC and __i386__ in options.h to decide whether to use
  230.        intel flag optimization.
  231.        Use test for wish4.0 to decide whether to use the GUI.
  232. 960507 New bebox.cpp from Christian. AF sound patches from Marcus Sundberg.
  233. 960505 Fix the configuration stuff so it works. Fix some bugs in gfxlib.c
  234. 960504 Use GNU autoconf scripts to generate Makefile and sysconfig.h. Add new
  235.        files sysdeps.h that includes the right system header files. Remove
  236.        amiga.h and Makefile.
  237. 960502 More Next code from Ian (new Uae.app directory, 2 bit drawing for
  238.        custom.c).
  239. 960501 Allow the sound driver to set the frequency to a value that is slightly
  240.        different from the requested one.
  241. 960430 Added AmigaOS port from Olaf Barthel.
  242. 960427 Fixed single playfield sprite priorities in X86.S.
  243. 960426 Added new NeXTwin.m from Ian.
  244.        Turn off the blitter delay in line mode.
  245.        Added a CPU optimization from Olivier Raoul: gencpu now reads a file
  246.        "insncount" that can be generated by UAE during execution and generates
  247.        specific functions for the most common opcodes. Not documented yet.
  248. 960414 Reimplemented the fast disk emulation in a more sane way. Also it's
  249.        only done for reads now. (Plus, it no longer works :-/ Need to work
  250.        some more on this).
  251.        In blitter emulation, defer not only the setting of the bltfinish bit,
  252.        but actually defer the whole blit for the number of cycles it will
  253.        take. This makes programs the clear the screen while it is still being
  254.        displayed look much better.
  255.        Changed supervisor mode handling around a bit (was messy).
  256.        New DOS code from Gustavo.
  257. 960412 Removed smart update method 2. Added Alessandro Bissacco's blitter
  258.        optimization patch.
  259.        Fixed some sprite problems: during hysnc, clear sprpos and sprctl, and
  260.        don't do_sprites() in line 0.
  261. 960409 Be a little more intelligent about when to call pfield_linetoscr() from
  262.        pfield_doline_slow(). It's only necessary if a color register changed.
  263.        If it can be deferred to the end of the line, use the the _full
  264.        variants.
  265.        Some CIA TOD fixes.
  266.        Better transdisk, accepts first/last track parameters.
  267. 960405 New function memcmpy(), inline assembler for the i386. Compares two
  268.        memory blocks and copies them at the same time. Used in
  269.        bpl_data_differs.
  270. 960404 French keyboard from Tristan Cavelier. Parallel port emulation from
  271.        Stefan Reinauer.
  272.        Turn bpl?pt and r_bpl?pt into arrays, simplify some code using them.
  273. 960401 Some parts of Ernesto's new Mac sources.
  274. 960331 filesys.c: Close filedescriptors in free_key(). get_path() sometimes
  275.        read uninitialized bytes.
  276.        Minor cleanups all over the place.
  277.        unchain_mnn() leaves sibling intact, but clobbers next. customreset()
  278.        didn't care about that and crashed.
  279.        Use the __asm__("intel_flag_lookup") magic not only for DOS.
  280.        Support 320x300 for X (without LOW_BANDWIDTH).
  281.        Add new function fast_memcmp(), defined as memcmp if __i386__ is
  282.        undefined, otherwise a slightly optimized inline assembly function.
  283. 960329 Some bug fixes in gencpu.c
  284. 960328 Stupid programs write odd playfield modulos into the hw registers...
  285.        Eek! Sometimes, linedescr[] was indexed with a negative value... Add a
  286.        vpos >= minfirstline check to pfield_may_need_update(). I really need
  287.        to rewrite this in Oberon...
  288.        Don't turn off SHM when LOW_BANDWIDTH is selected.
  289.        Keep the nextpos and linepos variables from pfield_doline_slow_?() as
  290.        globals and initialize them in pfield_may_need_udpate().
  291.        Modified alloc_colors256() some more.
  292.        Try to make sprite DMA follow the Amiga DMA slots more closely by
  293.        adding a currhp parameter to do_sprites() and calling it at the end
  294.        of a scanline or in pfield_may_need_update().
  295. 960327 Added Gustavo's latest DOS code, as far as possible. Modified X86.S to
  296.        use a macro SYM() to create symbol names either with underscore or
  297.        without.
  298.        Fixed some very silly SVGAlib lores bugs. Move screen 8 pixels up in
  299.        low resolution.
  300.        Use diwstop instead of diwstart to caclulate the DIW for 320x200 modes.
  301.        Reset it not only in calcdiw(), but also in init_frame().
  302.        Speed up 256 color allocation a little bit.
  303. 960326 New function flush_block() in xwin.c and svga.c. Called from
  304.        do_flush_line() and (new function) do_flush_screen(). Modify struct
  305.        vidbuf_description, new member maxblocklines that records the maximum
  306.        number of scanlines that do_flush_line() should collect before calling
  307.        flush_block(). If it is zero, then flush_line() is used as before.
  308.        This makes the special case stuff for SHM unnecessary, so it's removed.
  309.        Fixed a stupid bug in events code: Put ev_hsync in front of ev_copper,
  310.        so that do_copper gets called with hpos == 0 instead of hpos == 227 at
  311.        the beginning of the line.
  312.        New function init_frame() that sets up some variables, called from 
  313.        customreset() and vsync_handler().
  314.        Move smart update code to pfield_doline() from pfield_doline_h() and 
  315.        ..._l(). Clean up these two with a macro DO_ONE_PLANE, removing
  316.        duplicate code.
  317.        Implement big blits and ECS chip ids. New configuration options
  318.        ECS_AGNUS and ECS_DENISE.
  319.        Implement MOVEP.
  320. 960325 Before calling pfield_may_need_update(), make sure the value that was
  321.        written to a register actually differs from the previous one.
  322.        New expansion code from Stefan Reinauer.
  323.        Modify struct mem_notify_node to contain a pointer to a valid bit 
  324.        instead of the valid bit itself, so that the playfield code has to
  325.        check only one flag to decide whether to draw the line (SU method 2)
  326. 960324 The chip_flags approach has several problems. A flag may cover an area
  327.        in memory that spans two scanlines, or several scanlines may use the
  328.        same area in memory.
  329.        Provide two other, different methods for the smart update:
  330.        1. Save all the bitplane data for each line and compare the chipmem
  331.           with the saved data to decide whether an update is necessary.
  332.        2. Use a chain of memory_notify_node structs instead of a single bit
  333.           for flags. Each scanline owns a set of these structs and chains them
  334.       into the right place, and the chipmem_?put routines walk the chains
  335.       and set the modified bit for each element.
  336.        Unfortunately, both methods are slower than the old one. Especially the
  337.        first one has some advantages though: it speeds up programs that clear
  338.        the screen each update and write the same contents back, and it
  339.        can speed up double-buffering programs at full framerate, since it does
  340.        not have to check whether the bitplane pointers have changed.
  341.        Remember the first and last drawn line for each frame, and pass them to
  342.        flush_screen. Use this in xwin.c for SHM. Modify SHM logic: if smart
  343.        update is selected, call XShmPutImage() from flush_line() instead of 
  344.        from flush_screen(). But gather blocks of consecutive lines to avoid
  345.        calling XShmPutImage() too often.
  346. 960323 "Smart update" method, based very loosely on Alessandro Bissacco's
  347.        work, implemented:
  348.        Add an array chip_flags that records any change made to specific words
  349.        in chip memory.
  350.        Move all the hardware registers relevant to playfield display into a
  351.        new structure bplinfo. Remember the contents of this structure in
  352.        struct line_description for every line on the screen. Avoid redrawing
  353.        in pfield_doline if the screen memory has not been modified for the
  354.        line to be drawn and if the information from the last frame matches
  355.        that in the current frame.
  356. 960322 Duplicate all functions responsible for drawing (pfield_doline,
  357.        pfield_doline_slow, pfield_sprite, pfield_*word_*res) and append _h
  358.        or _l (ah, the golden C++ days, when we had templates... which never
  359.        worked). Modify the *_l functions to support drawing in low resolution
  360.        (i.e. 320x200). Change the options -d and -H to support selecting color
  361.        mode and resolution, thereby getting rid of some SVGALIB_* options.
  362.        Get rid of the old pfield_*word_*res functions.
  363.        Collect information about the minimum diwstart value during the
  364.        previous frame and use that in case 320x200 was selected to fit the
  365.        image on the screen.
  366.        Get rid of HAVE_JOYSTICK (breaks the "-J" option)
  367. 960321 Give up in op_illg() if opcode is 0x4e7b and the exception handler for
  368.        it is NULL. In that case, it's a 68020 Kickstart.
  369. 960319 New Next code from Ian. SunOS target was still screwed (two CFLAGS).
  370.        Turn -x option into a "hair cursor" option. Support multiple mounts,
  371.        but warn if more than one is seen (still does not work with Kick 1.3).
  372.        Integrated Samuel Devulder's new LOW_BANDWIDTH patch.
  373. 960318 Integrated the start of Markus Gietzen's gfx library replacement.
  374.        Changed the interface between custom.c and the graphics code. There has
  375.        to be a buffer holding the data of all the lines on the screen. For
  376.        linear SVGAlib modes, this is the video memory. Eliminated -x option,
  377.        prepare_line(), DrawPixel() and the X_?BIT_SCREEN options, replace with
  378.        3 versions of pfield_linetoscr for different datatypes. Implement
  379.        proper handling of the borders above and below the DIW in custom.c
  380.        instead of in flush_screen().
  381.        Move common code (color allocation) from all the graphics files to new 
  382.        file gfxutil.c.
  383.        Swedish keyboard from Per Olofsson.
  384.  
  385. 960315 Release 0.5.0
  386. 960315 Newest DOS port from Gustavo. New sgi-gcc target.
  387. 960314 Add -lXext to osf target. Use "rb" for fopen() in main.c
  388. 960310 Play a bit with the __asm__ constraints. Implement CHK.
  389. 960307 Fix some stupid Makefile errors. Call parse_cmdline() if no init file
  390.        is found.
  391.        First round of NextStep patches; new file NeXTwin.m
  392.        Stupid bug in custom.c: The #define is called NO_FAST_DISK, not
  393.        NO_FAST_FLOPPY.
  394.        Fix one of the problems the Deform demo had with the blitter: The
  395.        line texture wasn't rotated to the right position in blitter_init().
  396. 960306 Use some black GCC __asm__ magic to calculate flags more quickly
  397.        (config INTEL_FLAG_OPT)
  398.        HAM was broken by pfield_linetoscr changes. Fixed.
  399.        LOW_BANDWIDTH sometimes got confused when the display window changed.
  400. 960305 BCD instructions work well enough for Locomotive Basic on CPE.
  401.        New function parse_cmdline_and_init_file() that reads ~/.uaerc or
  402.        ./.uaerc and adds the options found in those files to those in argv[].
  403.        Patch from Denis Sablic to make disk image filenames runtime 
  404.        configurable. Extend it for the ROM filename.
  405.        Remove some of the run-time configurable stuff from config.h.
  406.        More X keysym fixes (I finally got a proper .Xmodmap ...)
  407.        for SVGAlib: Delete key, and PgUp/PgDn as Amiga keys.
  408.        The sound driver can now handle 22050 Hz and/or 8 bit samples. Both of
  409.        these are the default with LINUX_SOUND_SLOW_MACHINE.
  410.        Also use the SNDCTL_DSP_GETBLKSIZE ioctl and write the buffer when 
  411.        there is enough data.
  412.        Abuse keybuf.c to provide a fake joystick emulation with the numeric
  413.        pad (enable with -J)
  414. 960304 bebox.cpp from Christian.
  415.        Rename pfield_linetoscr_full to pfield_linetoscr_full8.
  416.        More x86 assembly: pfield_linetoscr_full16.
  417. 960303 SunOS target from Dirk Vangestel. Put some not-so-superfluous includes
  418.        back in. Added the DOS specific patches to filesys.c.
  419.        Started x86 assembly optimizations. New file X86.S, includes an
  420.        optimized version of pfield_linetoscr (for 8 bit screens only).
  421.        Don't use SA_RESTART if it isn't defined.
  422.        prepare_line() wasn't called often enough (again...), leading to memory
  423.        corruption and "hit the reset button" bugs when using SVGAlib.
  424. 960226 Get rid of bool, true and false in amiga.h and everywhere else.
  425.        Copy yesterdays code to AF_SOUND code, too.
  426.        Include first round of Christian Bauer's BeBox patches. Add AIX fix
  427.        from Samuel Mackrill.
  428.        Add #include <string.h> and #include <stdlib.h> in some more places.
  429.        Modify gencpu.c and readcpu.c so that immediate types j and J (0..15
  430.        and 1..8) can be merged. Replace HAVE_ONE_GIG... option with a new
  431.        CPU_EMU_SIZE option that can be set to a value in the range 0..5,
  432.        where 0 is minimum size and 5 is equivalent to HAVE_ONE_GIG...
  433. 960225 Remove multiplications in sound code, use a big lookup table.
  434. 960222 Go back to having only one memory bank table of type addrbank instead
  435.        of several function pointer arrays. Eliminate the HAVE_BROKEN_SOFTWARE 
  436.        define by extending the memory bank table to 65536 entries.
  437.        Remove remaining DUALCPU code. Allow BTST src,imm instructions in
  438.        table68k.
  439. 960220 Back out filesys.c change from Stefan Reinauer: don't call V36 specific
  440.        functions in expansion.library.
  441.        Better fix for the filesys.c assign problems by Oliver Moehrke.
  442.        Make new playfield code conditional on EXPERIMENTAL_SCREEN_UPDATE.
  443.        Improve the 64bit variant of said code. Try to get alignment for
  444.        apixels by putting it into a union with a long.
  445.        Kill the child in gui_exit(). Make graphics_init() return a value and
  446.        check it in main.c to see whether graphics were initialized. If not,
  447.        call gui_exit() anyway.
  448.        Use new 256 color allocation routine from svga.c in xwin.c, too.
  449.        Make LOW_BANDWIDTH compile _and_ work (wow...).
  450. 960219 Fix bug in memory.c: When loading 256K Kickstart, copy 256K, not 128K.
  451. 960218 Finished the rest of the UI: reset, debug and quit buttons as well as
  452.        drive LEDs. New target linux-gui; all others use dummy file nogui.c
  453.        for now.
  454. 960217 The GUI now supports inserting and ejecting diskfiles and displays
  455.        their names. Two pipes are used now, one for reading and one for
  456.        writing. Properly wait for the process to start up.
  457.        Use sigaction() instead of signal() in debug.c.
  458.        More fixes for the new display routines: Need to do a final call to
  459.        pfield_*word_*res with the data shifted right from the last fetched
  460.        word.
  461. 960216 Copper & sprite bugfixes from Marco Nelissen. Better X keyboard support
  462.        from Bruno Coste.
  463.        Move my_strdup() from filesys.c to options.h
  464.        New files xui.c, uae-ui (shell script) and uae-ui.tk (wish script).
  465.        These create a GUI for the X version of the emulator. So far, the
  466.        power LED works.
  467. 960215 Don't rely on SVGAlib headers defining any keycodes at all.
  468.        Include Thorsten Frueauf's NetBSD patch. Apparently, the devname
  469.        variable in hardfile.c caused a namespace collision, so rename it to
  470.        uaedevname. Fastmem fixes, debugger help, and ConfigDev allocation in
  471.        hardfile and filesys from Stefan Reinauer.
  472.        xwin.c: Give the window a title.
  473.        Half-implemented the DIVU.L, DIVS.L, MULU.L and MULS.L instructions.
  474. 960213 AF sound system support from Marcus Sundberg. Win95 keyboard support
  475.        for SVGAlib from Thierry Lescot. Added most of Gustavo Goedert's MS-DOS
  476.        port.
  477.        When using the old pfield_*word_*res functions, the gen_pfield_tables()
  478.        function was undefined.
  479.        Hmmm, /dev/brain must have been unmounted when I wrote the new pfield_*
  480.        functions. Now they make sure they access the apixels array only with
  481.        addresses that are multiples of 16 bytes.
  482. 960212 Fix copy&paste bug in cia.c found by Marco Nelissen: Need to call
  483.        RethinkICRB() instead of RethinkICRA() for CIA B timers.
  484.        Added Stefan Reinauers autoconfig area/fastmem support. Added run-time
  485.        options for use_slow_mem and use_fast_mem.
  486.        Oops, the pfield_*word_*res() optimizations break completely on HPs and
  487.        Sparcs. Now use this optimization only if we are using GCC 2.7.
  488.        HPUX fixes in the Makefile. New target hpux-gcc.
  489.        The code for clearing the areas above and below the DIW was trying to
  490.        be a little too clever selecting the color. Just use the current 
  491.        background color.
  492.        Added channel attachment to the sound code. Untested.
  493. 960211 Found some flag setting bugs in the rotate/shift instructions and in
  494.        addx/subx (which I thought I had already fixed) by reimplementing 
  495.        DUALCPU mode to work with Ed's e68k.
  496.        Argh! The copper is completely disabled during DDF in Hires 4 bitplane
  497.        mode - so copper positions 0x30 and 0x34 are about 640 pixels apart.
  498.        The Kickstart uses FF39FFFE to wait for the end of line 256 instead of
  499.        FFDFFFFE as in all the other modes. This is implemented now, but
  500.        probably not 100% correct.
  501.        Added check whether SVGAlib doesn't support our mode.
  502.        If using GCC >= 2.7, define __attribute__((aligned(16))) as
  503.        BIG_ALIGNMENT in config.h. Use it for the apixels array to prevent
  504.        potential problems on the Alpha.
  505.        Tried to make the color selection routine produce better results in 256
  506.        color mode.
  507. 960210 readdisk didn't work at all for large files - fixed.
  508.        In pfield_doline(), clear the apixels array if playfield DMA is off.
  509.        In SPRxCTL(), reset sprite mode when sprpos==sprctl==0
  510.        Rewrite pfield_orword_hires() and friends to use lookup tables. No
  511.        noticeable improvement on my machine, but might be different on other
  512.        machines. Two versions of this code: one using 64bit longs on the Alpha.
  513.        New targets linux-debug and linux-prof.
  514.        Use 1MB slow mem.
  515.        -funroll-loops is a little excessive. Remove it.
  516.        Add support for linear addressing modes for SVGAlib version. Speedup
  517.        is 20-30% on my old 486 VLB. Now, would someone please fix SVGAlib to
  518.        support that for the S3-864 as well?
  519.        Set SVGAlib keyboard mode to DONT_CATCH_CTRLC.
  520.        Change custom.c, xwin.c and svga.c to keep track of the display window 
  521.        and background color and to clear the areas above and below the display
  522.        window if necessary to remove garbage images from previous frames.
  523.        Set the LOF bit in the Kickstart replacement init routine. Also
  524.        initialize CIAs to Kick 1.3-like values.
  525. 960209 Some more -DHAVE_xxx_H options in the Makefile and filesys.c. DEC Alpha
  526.        fixes for filesys.c from Ed and Marcus. HPUX fixes.
  527.        New field in table68k for CPU type, parsed by readcpu and compared to
  528.        CPU_LEVEL which is defined in config.h. New instructions MOVE2C, MOVEC2
  529.        and CAS. Also a new field for priviledge level that is used by gencpu to
  530.        generate tests for regs.s and Exception(8) calls if necessary.
  531.        Move parsing of table68k into a new file build68k.c. Generate a file
  532.        called cpudefs.c containing the information from table68k in 
  533.        machine-readable form. Change readcpu.c to use the array found in 
  534.        cpudefs.c.
  535.        Don't generate the d8(An,Dn) addressing mode in-line. Generate a call to
  536.        get_disp_ea(), which is an inline function in newcpu.h if UAE is
  537.        configured for 68000 emulation; for 68020 emulation, it is defined in
  538.        newcpu.c.
  539.        Debugger could crash on illegals because there was no mnemonic defined
  540.        in lookuptab[].
  541.        Return zero for SERDATR.
  542. 960207 It seems that the copper stops completely if an attempt to write to a
  543.        specific register fails because of COPDANG. Apparently, the Kickstarts
  544.        use this to stop the copper with a 0x00000000 longword. This leaves the
  545.        question why they don't do 0xFFFFFFFE like everybody else.
  546.        Enable 512K slow memory by default.
  547.        Integrate Stefan Reinauers battclock patch that makes it work with
  548.        newer Kickstarts.
  549.        In cia.c, do the little index pulse hack even if dskdmaen==1, because
  550.        DMA is only enabled when dskdmaen==2 (Helps the "Mad Decision" demo).
  551.        Add solaris entry to Makefile (GCC, Openwin, -DHAVE_STATFS_H)
  552.        Define HAVE_STRINGS_H for SGIs, change filesys.c accordingly.
  553. 960206 Build a smaller table instead of cputbl.c. Use readcpu and the smaller
  554.        table to build the cpufunctbl array at run-time.
  555.        Nuked the other half of the old CPU emulator. Reimplemented debugger to
  556.        use the information generated by readcpu.
  557.        Define HAVE_STATFS_H for SGIs in the Makefile, and use that as a test
  558.        in filesys.c instead of #ifndef __linux.
  559.        Hack filesys.c, get_path() to support the assign command.
  560.        Add -fstrength-reduce and -funroll-loops in Makefile to make people
  561.        nervous.
  562.        Rewrite Sam Devulder's LOW_BANDWIDTH patch and add it to xwin.c.
  563. 960205 Forgot some PC-relative bit instructions in table68k.
  564.        Nuked half of the old CPU emulator.
  565.        Split gencpu.c into two parts, new one is called readcpu.c and just
  566.        parses the table68k file. Link it to the main program.
  567.  
  568. 960205 Release 0.4
  569. 960203 filesys.c, action_read(): Slightly more efficient code (translate Amiga
  570.        address to real pointer).
  571.        Moved some common code in the generate_* functions in gencpu.c to a
  572.        separate function.
  573. 960202 Added an experimental fast disk option. Currently turned off by
  574.        default (it's not such a big win).
  575.        Attached sprite fixes (overlapping att. sprites looked bad, Katakis).
  576.        Add sleep(1) before resetting the console to text mode when using
  577.        SVGAlib: this might fix some screen corruption problems.
  578.        Add sprite/playfield priority checking to the most important case
  579.        (single playfield, no HAM).
  580.        In filesys.c, do_find(): open() returns -1 on error, not zero.
  581.        Return ERROR_OBJECT_WRONG_TYPE if do_find() is called for a directory
  582.        (fixes Champions of Krynn harddisk installation).
  583. 960201 Don't abort if sound driver not present, just set produce_sound to 0.
  584.        New files keybuf.c and keybuf.h to record keypresses in the right
  585.        order and without losing any. In cia.c, force 15 scanlines between
  586.        keypresses, just to be sure.
  587.        unixfs.device _does_ work with Kick 1.3: just don't trust what Kick 1.3 
  588.        sends in the startup packet. For now, disable more than one mount per 
  589.        command line.
  590.        Started integrating Ernesto's new Mac sources.
  591.        Remove superfluous includes from some files.
  592. 960131 Added Ed's unixfs.device (great stuff).
  593.        Adding ULONGs to pointers is a bad idea on the Alpha if the ULONG value
  594.        really is signed. Add some casts to LONG in (pc_p + src) expressions
  595.        in genpu.c.
  596.        If DMACON is written and copper DMA is enabled, do a COPJMP1 at once.
  597.        Helps the "Interference" demo.
  598. 960129 More SGI fixes from Ed. Bugfixes and transdisk improvements from Marcus 
  599.        Sundberg.
  600.        Remove EXTRA_DEFINES from Makefile. Breaks some systems.
  601.        Move common sprite code from pfield_doline() and pfield_doline_slow()
  602.        to new function pfield_sprite(). The same sprite may appear more than
  603.        once on the same line, so don't shift out the bits of sprdata[] and
  604.        sprdatb[] while displaying it (Turrican I).
  605.        In xwin.c and svga.c, barf if LINUX_SVGALIB doesn't match the file 
  606.        being compiled.
  607.        Make all .o files depend on config.h in the Makefile.
  608.        No need to exit if sound driver unavailable, but -S given.
  609.        Small debugger fix: Missing space in output.
  610.        Fix for the sprite logic: Specifically, use a state variable indicating
  611.        whether the sprite has been restarted after a VSYNC. Fixes most
  612.        Turrican problems.
  613. 960124 Added Denis Sablic's patch for sound run-time option.
  614.        Added Ed Hanway's patch for better Makefile, X mouse cursor blanking 
  615.        and more SGI compilation fixes.
  616. 960123 Include options.h everywhere.
  617.        Handle 8 bit GrayScale visuals like PseudoColor.
  618.        Remove C++ leftovers from joystick code.
  619. 960122 When using the joystick driver, the button test must come after
  620.        handle_events() in vsync_handler().
  621. 960118 Removed all the remaining C++ comments. Changed all inline keywords to
  622.        __inline__. Define __inline__ if not using gcc.
  623.        Make proper prototypes for everything. Compile with maximum warnings +
  624.        -ansi + -pedantic.
  625.        Remove CIA_cycle(), obsolete.
  626.        Reimplemented the STOP optimization in newcpu.c. Removed DualCPU
  627.        support in CPU emulator.
  628.        Real nasty bug in pfield_doline() fixed: sprxpos could be evaluated as
  629.        negative, with not-so-amusing results. (Need to rewrite this in 
  630.        Oberon to get array bounds checking :-)       
  631. 960117 Heroic effort: Rewrote the thing in C. This might help fix some
  632.        problems with users being unable to compile it.
  633.        Fixed a problem in hsync_handler(): Only call flush_line() for lines
  634.        in the display window, i.e. when we did a prepare_line() before.
  635.        Better code for relative branches: Don't use setpc(getpc()+x) calls,
  636.        increment regs.pc_p instead.
  637. 960116 Reimplemented the function to load the Kickstart ROM. Use stdio instead
  638.        of fstreams since this apparently does not work on the Mac. Detect 256K
  639.        Kickstarts. Detect corrupt ROM images (calculate checksum).
  640.        Added Ernesto Corvi's Mac port. Changed it around a bit, so it
  641.        probably won't compile.
  642. 960115 Reinstate config.h options for X screen depth, so that DrawPixel() can
  643.        be inlined in custom.cc for speed. xlinebuffer is now incremented in
  644.        each call to DrawPixel() (for both X and SVGAlib) to get rid of some
  645.        address calculations.
  646. 960114 Fixed X generic pixel drawing routine for SHM.
  647.        Still trying to fix the harddisk emulation.
  648.        uae.device no longer breaks the debugger (can step through uae.device
  649.        functions now)
  650.        Bugs affecting performance: SPCFLAG_STOP never got reset, and DSKLEN() 
  651.        would set SPCFLAG_DISK even if DMA was being turned off.
  652.        Made slow memory a run-time option.
  653.        Defer interrupts by one CPU instruction to give programs a chance to
  654.        read INTREQR ("Seeing is Believing" and "Substance" demos)
  655.        Added ScrollLock hack for X, too.
  656. 960113 SVGAlib version compiles again. Fixed SVGAlib mouse bug.
  657.        Fixed SHM bug: Maximum scanline is 313, not 312.
  658.        Sometimes, disk.cc missed a side change and would read the wrong data.
  659.        Fixed. Apparently, this was the worst compatibility problem.
  660.        Implemented trace mode.
  661. 960112 Changed layout of class amigamemory a little so that gcc can generate
  662.        better addressing modes.
  663.        Finally wrote functions in gencpu to generate MOVEMs.
  664. 960109 Integrated Ed Hanway's patches for better X support and run-time
  665.        configuration of some options. 
  666.        Got rid of the direct VGA memory access. (Need to do this differently).
  667.        Changed the method of drawing lines: custom.cc now tells the graphics
  668.        code the line number and whether it needs to be doubleed before drawing
  669.        it.
  670.        Added Andre Beck's MIT-SHM patch.
  671.        Remove warnings for newcpu.cc.
  672. 960108 Fixed exceptions in op_illg(): Need to decrement PC.
  673. 960107 Added an "uae.device" resident module at 0xF00000. This emulates a hard
  674.        disk (fixed size 8MB for now).
  675. 960106 Moved some common code from pfield_doline() and pfield_doline_slow() to
  676.        a separate function. This fixes a potential HAM bug (two static vars
  677.        for the same value).
  678.        Sound support for Linux. Works only with graphics off and the CPU
  679.        slowed down.
  680.        Better SVGAlib keyboard support.
  681. 960105 Added AvailMem(), AllocMem(), AllocAbs() and FreeMem() dummies.
  682.        The Hardwired demo times the multiplication instructions and prints
  683.        "This demo don't like Axel" if they are too fast. Apparently, Axel has
  684.        a 68040. Added a WANT_SLOW_MULTIPLY option to config.h.
  685.        Fixed the fast blitter emulation (seems to work now).
  686. 960104 Fixed all the ChangeLog entries from 95 that said 96 (oops??!)
  687.        pfield_may_need_update() should check whether bitplane DMA is on.
  688.        Added ersatz.cc and ersatz.h. The purpose of these files is to
  689.        implement one or two Kickstart functions that are commonly called from
  690.        bootblocks. This should help support some games and demos that only use
  691.        the Kickstart as an initial track loader. So far, it's only good enough
  692.        for one program.
  693. 951223 More intelligent event handling in the CPU emulator. Slightly faster.
  694. 951222 Optimize CPU emulation by inlining cctrue(). Also, the real PC no
  695.        longer needs to be incremented each instruction. The real PC value
  696.        now has to be fetched by m68k_getpc().
  697.        Added direct screen access for SVGAlib, but it didn't help much. I'll
  698.        probably remove it again.
  699.        The gencpu executable is 2M smaller if it allocates memory
  700.        dynamically.
  701. 951216 custom_bput() enhanced a little. Now remembers the value that was 
  702.        written in the other half of the register.
  703.        Apparently, the USEx bits of BLTCON0 are ignored in line draw mode.
  704.        (Silents-Demo)
  705.  
  706. 951212 Release 0.3
  707. 951212 Included Alessandro's battclock patch.
  708.        Fixed mouse autocalibration for wrong-aspect screens.
  709. 951210 Joystick support for Linux.
  710.        Better color matching for 256 color modes.
  711.        Rewrote most of the memory management in plain C, mainly to avoid the
  712.        various template bugs in some compilers, but also because gcc can't
  713.        handle the regparm attribute for virtual functions yet.
  714. 951209 Added Alessandro's patches for automatic mouse calibration.
  715.        Tried to optimize the blitter loop a bit. Doesn't work.
  716. 951205 Added Hannu's patches for diskfile write support.
  717. 951201 More portability fixes, especially for weird compilers that workstation
  718.        vendors ship.
  719. 951125 More keys for X, some keyboard support for SVGAlib (slightly 
  720.        dangerous); beginnings of US keyboard support.
  721. 951124 256 color mode support for SVGAlib. FAST!
  722. 951123 Tiny tweak to central loops in playfield code results in much better
  723.        assembly. Apparently, GCC does not feel too good about optimizing 
  724.        reference variables.
  725. 951113 Bug fix in the events code (nextevent must not be changed while events
  726.        are being processed).
  727. 951112 The playfield can now be drawn with the right aspect (i.e., every line
  728.        twice). Slower, but looks nicer and supports interlaced mode
  729.        (flickerfree!). The first 29 lines (blanking interval) are omitted
  730.        now to fit everything in 800x600.
  731.        Oops, disk drive identification did not work. Fixed, all four drives
  732.        appear now.
  733.        Oops, CIA_reset() was there all the time but never got called.
  734.        Optimized the planar->chunky conversion in pfield_doline() a little.
  735.        This really is time critical.
  736. 951111 If colors change on a line, we might still be able to use the full 
  737.        line update, if the change occurred outside the DIW. Have to be a 
  738.        little careful, though.
  739.        Playfield code now uses real pointers again, but makes sure it can
  740.        read enough bytes to complete the current line without segfaulting.
  741.        Oops, my "better estimate" (see below) was a mistake. Restored the
  742.        original 4 hw cycles per instruction relation. This slows down the
  743.        emulator while booting (more screen refreshs), but speeds up many
  744.        demos that otherwise spend most of their time waiting for a specific
  745.        raster position.
  746.        Playfield modulos must be added immediately when DDF stops. (WOC demo)
  747.        Portability fixes in disk.cc (null pointers).
  748.        Implemented average frame rate calculation ('c' in the debugger).
  749.        Debugger fixes.
  750.        Sprite fixes (height was wrong, wrong priorities in fast update)
  751.        Added an AutoConfig expansion RAM device. The OS seems to recognize
  752.        it, but breaks sometime later (seems to be the same bug that kills
  753.        the emulator when there's RAM at 0xC00000).
  754.        SVGAlib now has mouse support, too.
  755.        HAM mode implemented.
  756. 951110 Implemented fast complete line playfield update. Switches back if
  757.        necessary. Fixed attached sprites bug.
  758.        Copper wait no longer slows down the CPU emulation. (there were
  759.        lots of new copper bugs because of this, but I hope I fixed all
  760.        of them).
  761.        Changed cia?t? from UWORD to ULONG, since there were overflows in
  762.        the assertion (because of 65535+1 == 0).
  763. 951108 The DIVS remainder could have the wrong sign.
  764.        New HAVE_BROKEN_SOFTWARE define in config.h that makes the emulator
  765.        mask out the high byte of all addresses.
  766.        Wrote genblitter.cc and replaced the awful code in blitter_blit()
  767.        and blitter_line() with calls to the generated function.
  768. 951107 Implemented ?BCD. These don't really work yet.
  769.  
  770. 951106 Release 0.2
  771. 951105 Fixed a bug in the new CIA timer code.
  772.        Fixed flag settings for some cases of ADDX/SUBX
  773. 951104 Changed the main loop a bit - call all the *cycle() functions only if
  774.        it is really necessary. I hope everything still works - at least it is
  775.        twice as fast now :-D
  776.        Improved mouse emulation - avoid overflows, permit "wraparound".
  777.        Added debugger 'g' command.
  778.        Removed some useless casts from the CPU emulator.
  779.        Added a configuration option to prevent checks for odd addresses. Only
  780.        very bad programs need this check.
  781. 951103 The sprite emulation sometimes did not work too well, especially with
  782.        dual playfield mode. Hopefully fixed.
  783. 951102 The 10 cycle counter is more like a 5 cycle counter in this
  784.        implementation. (Fine, that makes floppy loading even faster :-)
  785.        Implemented mouse movement. Totally out of sync with the X pointer,
  786.        but at least something.
  787.        Found out about the XAutoRepeatOff() function. Real useful.
  788.        DualCPU mode works again.
  789.        Corrected flag settings for CMPA.W.
  790.        Fixed DIV instructions: Don't change dest in case of overflow.
  791. 951031 The PC is now converted to a real pointer. This is safe (much safer
  792.        than converting bitplane pointers, since the PC always has to be valid)
  793.        and should speed things up a little.
  794. 951029 Some primitive event handling: 2 mouse buttons and 1 joystick button
  795.        are emulated, as well as parts of the keyboard (only german mapping).
  796.        Fixes: Delay values and sprite widths are always LoRes. Playfield 2
  797.        uses colors 9..15.
  798.        Implemented a frame rate configuration option that can speed up the
  799.        emulation quite a bit.
  800. 951028 A-ha. The 68000 has one strange feature after all. MOVEM.W to Dn sign 
  801.        extends the value to a longword.
  802.        Katakis expects that accessing odd addresses causes exception 3, so 
  803.        we have to emulate this. *Sigh*
  804.        Do at least something with the index pulse bit. It's more or less a 
  805.        toggle now.
  806.        Implemented sprites & dual playfields, both with small glitches.
  807. 951027 When LOF is set, the frame is one line longer.
  808. 951026 Implemented a preliminary diskfile type for special formats. Turrican
  809.        boots up correctly (crashes if I want to play a game, though).
  810.        Implemented EHB and added a few missing masking operations in the color
  811.        handling.
  812.        Fixed the absw addressing mode - need to sign extend here as well.
  813. 951025 Fixed another extremely stupid bug, this time in the playfield code.
  814.        Each pixel was calculated four times...
  815.        Increased the size of the apixels array - this was being overrun.
  816. 951024 Fixed an extremely stupid bug in flag settings for byte and word
  817.        operations.
  818.        The "sectors until gap" field must be in the range 1..11 instead of
  819.        0..10, or very bad things will happen if it is used to calculate a
  820.        blit size.
  821. 951021 Don't use real pointers to fetch bitplane data - too many segfaults.
  822.        Delay the copper after executing an instruction, or wait sequences like
  823.        FFDF FFFE 0200 FFFE won't work.
  824.        Some programs expect that the CPU is completely turned off if the
  825.        blitter nasty bit is set. So be it.
  826.        The RSI Megademo chokes when disk DMA fetches two syncs. Leave one out.
  827.        The LOF bit wasn't set correctly.
  828. 951020 Blitter fixes: Load fill carry from FCI each line; keep the masked
  829.        value of bltadat in bltolda
  830.        Give the CPU twice as many "cycles" - this still is not even remotely
  831.        correct, but a better estimate.
  832. 951017 Added SVGAlib support. Unfortunately, my graphics card isn't fully
  833.        supported by the current SVGAlib version.
  834. 951015 More small optimizations to memory.h and custom.cc.
  835.        Added code for 256 color screens. The type of screen has to be
  836.        selected at compile time.
  837. 951014 Modified the memory management to be (hopefully) a little more
  838.        efficient.
  839.        Changed gencpu.cc to generate functions and a big function pointer
  840.        array instead of the old case labels. The generated C++ files now
  841.        compile a lot faster, and the code should be better as well.
  842. 951013 Implemented pseudo POTGOR to keep the RMB from being detected as
  843.        pressed all the time.
  844.        GenerateDecTab() generated TRAP incorrectly.
  845.        Made some more instructions (MOVE.B A0,D0 etc) illegal in gencpu.cc.
  846.        Fixed X colors. Fixed data fetching for HiRes screens.
  847. 951011 EXT.WL instructions set the flags.
  848.        Implemented second CPU emulator, plus "DualCPU" option. The new CPU
  849.        emulator is generated automatically from a file called table68k by
  850.        a program called gencpu.
  851. 951002 Removed version information from the file headers.
  852.        Removed some sillinesses in custom.cc. 
  853.        DSKLEN bug fixed (mask out 0xC000).
  854.        Playfield code rewritten. Now supports horizontal scrolling. Implemented
  855.        some primitive color support.
  856. 950927 Fixed predecrement/postincrement addressing with byte size for the
  857.        stack pointer.
  858. 950926 Fixes to the disk code: Terminate disk DMA, flip disk side, read more
  859.        than just two sectors during disk DMA, fix checksum calculation.
  860.        Fixed copper comparison bugs.
  861.        
  862. 950901 Release 0.1
  863. 950826 bugfix in GenerateDecTab(): LEA.W instructions were generated.
  864. 950312 New file disk.cc, for (guess what) disk support. Doesn't work yet.
  865. 950311 Multiplication instructions were generating 16 bit results.
  866.        Sign extension was wrong in some places.
  867.        Removed bugs in the blitter (one word width: ALWM & AFWM and line mode)
  868.        The Kickstart logo looks perfect now.
  869.        Playfield routine should check BPLCON0 instead of BLTCON0
  870. 950309 ASR D8,D0 is not a valid instruction.
  871.        Bitplane pointers were not incremented.
  872.        Copper comparison didn't work. COP2LC and bitplane pointers were written
  873.        incorrectly. Fixed.
  874.        Something that bears a striking resemblance to the familiar Kickstart
  875.        logo now appears in my X window!
  876. 950306 ROR used to set the X flag. Bug fixes in GenerateDecTab.
  877.        More bug fixes in several 68000 instructions.
  878.        Improved blitter. ?????? KS1.3 doesn't seem to set BLTDMOD on a 
  879.        line draw. What is this??
  880.        Fixed stupid bugs in playfield code.
  881. 950305 fixed bugs in opcode generation and interrupt handling. Implemented 
  882.        STOP. Fixed flag settings: Result wasn't masked. Ooops!!
  883.        ADDQ #imm,An doesn't set flags.
  884.        One-shot timer mode didn't work.
  885.        Implemented blitter, doesn't work.
  886.        Some primitive and slow playfield support, only to make the things that
  887.        hopefully will soon appear visible.
  888. 950304 CIA timers ought to work OK. Copper is emulated.
  889.        Emulator loops infinitely when trying to initialize the console.device
  890. 950303 experiments with X, figured out how to open a window and draw pixels.
  891.        No graphics emulation yet, though.
  892. 950301 Nearly all instructions work.
  893.        Fixed supervisor mode stack.
  894.        The memory manager now handles CIA chips.
  895. 950228 Bug fixes in 68000 code, exceptions and more instructions implemented
  896.        Memory management extended to handle custom chips as well.
  897.        Debugger improved.
  898.        Kickstart passes memory & CPU type test, builds up some system
  899.        structures.
  900. 950227 MC68000 & little debugger for tracing. It can execute the first couple
  901.        of KS1.3 instructions, but doesn't get past the memory test.
  902. 950225 Work begun
  903.